Convenciones de Commits y Versionado
Este documento define cómo escribimos los mensajes de commit y cómo versionamos el proyecto.
Formato del commit
<tipo>: <descripción en inglés>
- El tipo indica la naturaleza del cambio.
- Después del tipo va
:seguido de un espacio. - La descripción va en inglés, en modo imperativo y en minúscula (ej.
add,fix,update, noadded/Added).
Ejemplos
feat: add user login with WhatsApp OTP
fix: correct total calculation in cart summary
style: adjust spacing on product card
hotfix: patch broken payment webhook in production
Tipos permitidos
| Tipo | Cuándo se usa |
|---|---|
feat | Nueva funcionalidad o característica visible para el usuario. |
fix | Corrección de un bug detectado durante el desarrollo. |
style | Cambios de estilo/formato que no afectan la lógica (CSS, espaciado, orden de imports, formato de código). |
hotfix | Corrección urgente aplicada directamente sobre producción. |
Versionado
Cuando sale una nueva versión de lo trabajado, subimos la versión con npm version:
npm version patch # 1.0.0 -> 1.0.1
npm version minor # 1.0.1 -> 1.1.0
npm version major # 1.1.0 -> 2.0.0
Criterio para elegir el incremento
| Comando | Se usa cuando... |
|---|---|
npm version patch | Solo hubo correcciones (fix, hotfix) o ajustes de estilo (style) sin cambios en funcionalidad. |
npm version minor | Se agregó nueva funcionalidad (feat) compatible con lo anterior (sin romper nada existente). |
npm version major | Hay cambios que rompen compatibilidad (breaking changes). |
npm versionactualiza el campoversionenpackage.jsony crea automáticamente un commit y un tag de git con la nueva versión.
Flujo resumido
- Trabajas en el cambio y haces commits usando el formato
<tipo>: <descripción en inglés>. - Cuando la versión está lista para publicarse, corres el
npm versioncorrespondiente según el criterio de arriba. - Se genera el tag de versión y se sube junto con los cambios.